home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 1.iso / ARGONET / PD / SOUND / MP3CONV.ZIP / !MP3Conv / c / sound-sun < prev    next >
Text File  |  1997-04-02  |  2KB  |  68 lines

  1. /*
  2.  *  sound-sun.c
  3.  *
  4.  *  System-specific audio routines for Sun (SunOS 4.x,
  5.  *  Solaris/SPARC and Solaris/x86).
  6.  *
  7.  *  Created 16-Feb-97 by Johan Hagman.
  8.  */
  9.  
  10. #include <multimedia/libaudio.h>
  11. #ifdef SUNOS
  12. # include <multimedia/audio_device.h>
  13. #endif
  14. #include "common.h"
  15. #include "sound.h"
  16.  
  17. int
  18. sound_init(int audiofd, layer *info, int stereo) {
  19.     Audio_hdr    audioinfo;
  20.     int        samplefrq = (int)(s_freq[info->version]
  21.             [info->sampling_frequency] * 1000.0);
  22.  
  23.     /* First pause and flush audio device */
  24.     audio_pause(audiofd);
  25.     audio_flush(audiofd);
  26.  
  27.     /* Get currect configuration */
  28.     if (audio_get_play_config(audiofd, &audioinfo))
  29.     return 1;
  30.  
  31. /*
  32.     printf("rate %u, channels %u, samples/unit %u, bytes/unit %u, "
  33.     "encoding %u, endian %u, data size %u\n",
  34.     audioinfo.sample_rate, audioinfo.channels,
  35.     audioinfo.samples_per_unit, audioinfo.bytes_per_unit,
  36.     audioinfo.encoding, audioinfo.endian, audioinfo.data_size);
  37. */
  38.  
  39.     audioinfo.sample_rate = samplefrq;
  40.     audioinfo.channels = stereo;
  41.     audioinfo.samples_per_unit = 1;
  42.     audioinfo.bytes_per_unit = 2;    /* 16-bit samples */
  43.     audioinfo.encoding = AUDIO_ENCODING_LINEAR;
  44.     audioinfo.data_size = AUDIO_UNKNOWN_SIZE;
  45.  
  46.     /* Initialize audio device */
  47.     if (audio_set_play_config(audiofd, &audioinfo))
  48.     return 1;
  49.  
  50.     audio_resume(audiofd);
  51.     return 0;
  52. }
  53.  
  54. int
  55. sound_open() {
  56.     return(open("/dev/audio", O_WRONLY));
  57. }
  58.  
  59. int
  60. sound_close(int audiofd) {
  61.     return(close(audiofd));
  62. }
  63.  
  64. int
  65. sound_write(int audiofd, const void *buffer, size_t count) {
  66.     return(write(audiofd, buffer, count));
  67. }
  68.